[INFO] cloning repository https://github.com/swen128/compiler-book
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/swen128/compiler-book" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bf1a832bbd495c07bc75edee722288ca59b23cb6
[INFO] checking swen128/compiler-book against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/swen128/compiler-book on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/swen128/compiler-book
[INFO] finished tweaking git repo https://github.com/swen128/compiler-book
[INFO] tweaked toml for git repo https://github.com/swen128/compiler-book written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/swen128/compiler-book already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 53ce403d5eb8ba89d3ae76fa4c939ab64ce212d861a71ad69f4cfb00aecf8deb
[INFO] running `Command { std: "docker" "start" "-a" "53ce403d5eb8ba89d3ae76fa4c939ab64ce212d861a71ad69f4cfb00aecf8deb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53ce403d5eb8ba89d3ae76fa4c939ab64ce212d861a71ad69f4cfb00aecf8deb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53ce403d5eb8ba89d3ae76fa4c939ab64ce212d861a71ad69f4cfb00aecf8deb", kill_on_drop: false }`
[INFO] [stdout] 53ce403d5eb8ba89d3ae76fa4c939ab64ce212d861a71ad69f4cfb00aecf8deb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 49e37bd6fd26abdaec8d69cd91727d646a958ddb882415d104d61101b007a873
[INFO] running `Command { std: "docker" "start" "-a" "49e37bd6fd26abdaec8d69cd91727d646a958ddb882415d104d61101b007a873", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling proc-macro2 v1.0.76
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking zerocopy v0.7.32
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling thiserror v1.0.56
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]    Compiling ahash v0.8.7
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]    Compiling indoc v2.0.4
[INFO] [stderr]     Checking pretty_assertions v1.4.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling psm v0.1.21
[INFO] [stderr]    Compiling stacker v0.1.15
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]    Compiling logos-codegen v0.13.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.56
[INFO] [stderr]    Compiling logos-derive v0.13.0
[INFO] [stderr]     Checking logos v0.13.0
[INFO] [stderr]     Checking compiler-book v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `risc_v::RiscVFrame`
[INFO] [stdout]  --> src/frame.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use risc_v::RiscVFrame;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::symbol::symbol`
[INFO] [stdout]    --> src/types.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     use crate::symbol::symbol;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/temp.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn named(name: &str) -> Self {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]   --> src/translate/level.rs:71:46
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn formals<F: Frame + Clone + PartialEq>(level: Level<F>) -> Vec<Access<F>> {
[INFO] [stdout]    |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/frame/risc_v.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn proc_entry_exit1(&self, body: crate::ir::Statement) -> crate::ir::Statement {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/frame/risc_v.rs:85:22
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn external_call(name: &str, args: Vec<crate::ir::Expr>) -> crate::ir::Expr {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/frame/risc_v.rs:85:34
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn external_call(name: &str, args: Vec<crate::ir::Expr>) -> crate::ir::Expr {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_pointer`
[INFO] [stdout]   --> src/frame/risc_v.rs:98:20
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn expr(&self, frame_pointer: &Temp) -> Expr {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_pointer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/temp.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn named(name: &str) -> Self {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expr::Condition` is more private than the item `expr::Expr::Cx::0`
[INFO] [stdout]    --> src/translate/expr.rs:11:8
[INFO] [stdout]     |
[INFO] [stdout] 11  |     Cx(Condition),
[INFO] [stdout]     |        ^^^^^^^^^ field `expr::Expr::Cx::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `expr::Condition` is only usable at visibility `pub(translate)`
[INFO] [stdout]    --> src/translate/expr.rs:100:1
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(super) enum Condition {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_program` is never used
[INFO] [stdout]   --> src/checker.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn trans_program<F: Frame + Clone + PartialEq>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Checker` is never constructed
[INFO] [stdout]   --> src/checker.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct Checker<F: Frame + Clone + PartialEq> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/checker.rs:54:8
[INFO] [stdout]     |
[INFO] [stdout] 53  | impl<F: Frame + Clone + PartialEq> Checker<F> {
[INFO] [stdout]     | --------------------------------------------- associated items in this implementation
[INFO] [stdout] 54  |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     fn enter_loop(&mut self, label: Label) -> Option<Label> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     fn leave_loop(&mut self, previous_loop: Option<Label>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72  |     fn trans_expr(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn trans_break(&mut self, span: Span) -> TypedExpr {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn trans_string_literal(&mut self, str: String, span: Span) -> TypedExpr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn trans_while(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn trans_for(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn trans_binary_operator(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn trans_if(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn trans_array(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn trans_record(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn trans_assign(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     fn trans_func_call(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     fn trans_specific_type_expr(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     fn trans_var(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     fn trans_seq(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 542 |     fn trans_let(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 569 |     fn trans_dec(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     fn lookup_type(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 687 |     fn lookup_variable<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 701 |     fn lookup_function<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup_variable` is never used
[INFO] [stdout]    --> src/checker.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn lookup_variable<'a, F: Frame + Clone + PartialEq>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup_function` is never used
[INFO] [stdout]    --> src/checker.rs:737:4
[INFO] [stdout]     |
[INFO] [stdout] 737 | fn lookup_function<'a, F: Frame + Clone + PartialEq>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup_type` is never used
[INFO] [stdout]    --> src/checker.rs:754:4
[INFO] [stdout]     |
[INFO] [stdout] 754 | fn lookup_type(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_function_params` is never used
[INFO] [stdout]    --> src/checker.rs:767:4
[INFO] [stdout]     |
[INFO] [stdout] 767 | fn trans_function_params(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_type` is never used
[INFO] [stdout]    --> src/checker.rs:794:4
[INFO] [stdout]     |
[INFO] [stdout] 794 | fn trans_type(ty: ast::Ty, env: &TypeTable, id_generator: &mut IdGenerator) -> types::Ty {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_type_name` is never used
[INFO] [stdout]    --> src/checker.rs:814:4
[INFO] [stdout]     |
[INFO] [stdout] 814 | fn trans_type_name(id: ast::TypeId, env: &TypeTable) -> types::Ty {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_function_arg_types` is never used
[INFO] [stdout]    --> src/checker.rs:819:4
[INFO] [stdout]     |
[INFO] [stdout] 819 | fn check_function_arg_types(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_binary_operator` is never used
[INFO] [stdout]    --> src/checker.rs:849:4
[INFO] [stdout]     |
[INFO] [stdout] 849 | fn check_binary_operator(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `declare_variable` is never used
[INFO] [stdout]    --> src/checker.rs:901:4
[INFO] [stdout]     |
[INFO] [stdout] 901 | fn declare_variable<F: Frame + Clone + PartialEq>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `array_index_access` is never used
[INFO] [stdout]  --> src/checker/array.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn array_index_access(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/checker/error.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum SemanticError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 11 |     #[error("Type mismatch: expected {expected:?}, found {found:?}")]
[INFO] [stdout] 12 |     TypeError { expected: Ty, found: Ty, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     UntypedNilError { span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     UndefinedType { name: TypeId, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     UndefinedVariable { name: Id, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     UndefinedFunction { name: Id, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     UndefinedField { ty: Ty, field: Id, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     UnexpectedFunction { name: Id, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     UnexpectedVariable { name: Id, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     UnexpectedNonArray { found: Ty, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     UnexpectedNonRecord { found: Ty, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     MissingRecordFields { fields: Vec<Id>, span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     WrongNumberOfArguments {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     BreakOutsideLoop { span: Span },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SemanticError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_field_access` is never used
[INFO] [stdout]   --> src/checker/record.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn record_field_access(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TypedField` is never used
[INFO] [stdout]   --> src/checker/record.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | type TypedField = (Spanned<Id>, TypedExpr);
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_record_type` is never used
[INFO] [stdout]   --> src/checker/record.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn check_record_type(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_record_fields` is never used
[INFO] [stdout]   --> src/checker/record.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn check_record_fields(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Variable` and `Function` are never constructed
[INFO] [stdout]   --> src/env.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ValueEntry<F: Frame + Clone + PartialEq> {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 28 |     Variable {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `func` is never used
[INFO] [stdout]   --> src/env.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<F: Frame + Clone + PartialEq> ValueEntry<F> {
[INFO] [stdout]    | ------------------------------------------------ associated function in this implementation
[INFO] [stdout] 39 |     pub fn func(params: Vec<Ty>, result: Ty) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `base` and `begin_scope` are never used
[INFO] [stdout]   --> src/env.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<F: Frame + Clone + PartialEq> Environment<F> {
[INFO] [stdout]    | ------------------------------------------------- associated items in this implementation
[INFO] [stdout] 48 |     /// Returns an environment with the built-in types and functions.
[INFO] [stdout] 49 |     pub fn base() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn begin_scope(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `base`, `get`, `insert`, and `begin_scope` are never used
[INFO] [stdout]   --> src/env.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<F: Frame + Clone + PartialEq> ValueTable<F> {
[INFO] [stdout]    | ------------------------------------------------ associated items in this implementation
[INFO] [stdout] 68 |     /// Returns a table with the built-in functions.
[INFO] [stdout] 69 |     pub fn base() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get(&self, symbol: &Id) -> Option<&ValueEntry<F>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn insert(&mut self, id: Id, value: ValueEntry<F>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn begin_scope(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `base`, `get`, `insert`, and `begin_scope` are never used
[INFO] [stdout]    --> src/env.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout] 95  | impl TypeTable {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 96  |     /// Returns a table with the built-in types.
[INFO] [stdout] 97  |     pub fn base() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get(&self, id: &TypeId) -> Option<&Ty> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn insert(&mut self, id: &TypeId, ty: Ty) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn begin_scope(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/env.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<'a, F: Frame + Clone + PartialEq> Scope<'a, F> {
[INFO] [stdout]     | --------------------------------------------------- associated function in this implementation
[INFO] [stdout] 124 |     pub fn new(env: &'a mut Environment<F>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_escape` is never used
[INFO] [stdout]  --> src/escape.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn find_escape(program: &mut ast::Program) {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Depth` is never used
[INFO] [stdout]   --> src/escape.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Depth = usize;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EscapeFinder` is never constructed
[INFO] [stdout]   --> src/escape.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct EscapeFinder {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_var_usage`, `find_escape`, `traverse_decs`, `traverse_var`, and `traverse_expr` are never used
[INFO] [stdout]   --> src/escape.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl EscapeFinder {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 21 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn add_var_usage(&mut self, id: ast::Id, depth: Depth) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn find_escape(&mut self, program: &mut ast::Program) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn traverse_decs(&mut self, d: Depth, s: &mut Vec<Spanned<ast::Dec>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn traverse_var(&mut self, d: Depth, s: &mut ast::LValue) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     fn traverse_expr(&mut self, d: Depth, s: &mut ast::Expr) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Name`, `Call`, `ESeq`, and `Error` are never constructed
[INFO] [stdout]   --> src/ir.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 5  |     Const(i64),
[INFO] [stdout] 6  |     Name(Label),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Call { address: Box<Expr>, args: Vec<Expr> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     ESeq(Box<Statement>, Box<Expr>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/ir.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Statement {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 18 |     Move {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Exp(Expr),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Jump {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     CJump {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Seq(Box<Statement>, Box<Statement>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 41 |     Label(Label),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |     Noop,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/ir.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum BinOp {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 48 |     Plus,
[INFO] [stdout] 49 |     Minus,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 50 |     Mul,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 51 |     Div,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 52 |     /// Bitwise `and` operator
[INFO] [stdout] 53 |     And,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 54 |     /// Bitwise `or` operator
[INFO] [stdout] 55 |     Or,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 56 |     LShift,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     RShift,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 58 |     ARShift,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 59 |     Xor,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `sub`, `mul`, `call`, `eseq`, `binop`, and `new_temp` are never used
[INFO] [stdout]    --> src/ir.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Expr {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn sub(e1: Expr, e2: Expr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn mul(e1: Expr, e2: Expr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn call(address: Expr, args: Vec<Expr>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn eseq(s: Statement, e: Expr) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn binop(op: BinOp, left: Expr, right: Expr) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn new_temp() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `seq`, `optional_seq`, `non_empty_seq`, `pair`, and `jump_to_label` are never used
[INFO] [stdout]    --> src/ir.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Statement {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 132 |     pub fn seq(head: Statement, rest: Vec<Statement>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn optional_seq(mut statements: impl Iterator<Item = Statement>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn non_empty_seq(head: Statement, rest: impl Iterator<Item = Statement>) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn pair(first: Statement, second: Statement) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn jump_to_label(label: Label) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `symbol` is never used
[INFO] [stdout]  --> src/symbol.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn symbol(name: &str) -> Symbol {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/symbol.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Symbol {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 27 |     fn name(&self) -> &str {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_level_scope` is never read
[INFO] [stdout]   --> src/symbol.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct SymbolTable<T> {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     top_level_scope: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get`, `has`, `begin_scope`, and `current_scope` are never used
[INFO] [stdout]   --> src/symbol.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<T> SymbolTable<T> {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn insert(&mut self, symbol: Symbol, value: T) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn get(&self, symbol: &Symbol) -> Option<&T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn has(&self, symbol: &Symbol) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn begin_scope(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn current_scope(&mut self) -> &mut Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TempTable` is never constructed
[INFO] [stdout]   --> src/temp.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TempTable {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `named` is never used
[INFO] [stdout]   --> src/temp.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Label {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn named(name: &str) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/types.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum Ty {
[INFO] [stdout]    |          -- variants in this enum
[INFO] [stdout] 7  |     Int,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 8  |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 9  |     Record(UniqueId, RecordFields),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     Array(UniqueId, Box<Ty>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 11 |     Nil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 12 |     Unit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     Name(TypeId, Box<Ty>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ty` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/types.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Ty {
[INFO] [stdout]    | ------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn array(element_ty: Ty) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn record(fields: impl Iterator<Item = (Id, Ty)>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn name(name: TypeId, ty: Ty) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn common_type(a: &Self, b: &Self) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_subtype_of(&self, other: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn is_array_type(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn is_comparable_to(&self, other: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `keys` are never used
[INFO] [stdout]   --> src/types.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl RecordFields {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 66 |     pub fn new(fields: impl Iterator<Item = (Id, Ty)>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn get(&self, key: &Id) -> Option<&RecordField> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn keys(&self) -> impl Iterator<Item = &Id> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/types.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl UniqueId {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 116 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `level`
[INFO] [stdout]   --> src/translate/level.rs:71:46
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn formals<F: Frame + Clone + PartialEq>(level: Level<F>) -> Vec<Access<F>> {
[INFO] [stdout]    |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdGenerator` is never constructed
[INFO] [stdout]    --> src/types.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct IdGenerator {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `next` are never used
[INFO] [stdout]    --> src/types.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl IdGenerator {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 131 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn next(&mut self) -> UniqueId {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARRAY_ELEMENT_SIZE` is never used
[INFO] [stdout]   --> src/translate.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const ARRAY_ELEMENT_SIZE: Byte = Byte(8);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RECORD_ELEMENT_SIZE` is never used
[INFO] [stdout]   --> src/translate.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RECORD_ELEMENT_SIZE: Byte = Byte(8);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Fragment` is never used
[INFO] [stdout]   --> src/translate.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Fragment<F: Frame + Clone + PartialEq> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unit` is never used
[INFO] [stdout]   --> src/translate.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn unit() -> Expr {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nil` is never used
[INFO] [stdout]   --> src/translate.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn nil() -> Expr {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `array_index` is never used
[INFO] [stdout]   --> src/translate.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn array_index(array: Expr, index: Expr) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_access` is never used
[INFO] [stdout]   --> src/translate.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn field_access(record: Expr, index: usize) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `literal_number` is never used
[INFO] [stdout]   --> src/translate.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn literal_number(n: u64) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function_call` is never used
[INFO] [stdout]   --> src/translate.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn function_call(label: Label, args: impl Iterator<Item = Expr>) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `negation` is never used
[INFO] [stdout]   --> src/translate.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn negation(expr: Expr) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence` is never used
[INFO] [stdout]   --> src/translate.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn sequence(exprs: impl DoubleEndedIterator<Item = Expr>, last: &Expr) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `statements` is never used
[INFO] [stdout]   --> src/translate.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn statements(mut exprs: impl Iterator<Item = Expr>) -> Option<Expr> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `array_creation` is never used
[INFO] [stdout]   --> src/translate.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn array_creation<F: Frame + Clone + PartialEq>(size: Expr, init: Expr) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_creation` is never used
[INFO] [stdout]   --> src/translate.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn record_creation<F: Frame + Clone + PartialEq>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `memory_allocation` is never used
[INFO] [stdout]   --> src/translate.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn memory_allocation<F: Frame + Clone + PartialEq>(byte_size: ir::Expr) -> ir::Expr {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_initialization` is never used
[INFO] [stdout]    --> src/translate.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn record_initialization(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assignment` is never used
[INFO] [stdout]    --> src/translate.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn assignment(dst: Expr, src: Expr) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `if_then` is never used
[INFO] [stdout]    --> src/translate.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn if_then(cond: Expr, then: Expr) -> Expr {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `if_then_else` is never used
[INFO] [stdout]    --> src/translate.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn if_then_else(cond: Expr, then: Expr, else_: Expr) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `if_then_else_expr` is never used
[INFO] [stdout]    --> src/translate.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn if_then_else_expr(cond: Condition, then: ir::Expr, else_: ir::Expr) -> ir::Expr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `if_then_else_unit` is never used
[INFO] [stdout]    --> src/translate.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn if_then_else_unit(cond: Condition, then: ir::Statement, else_: ir::Statement) -> ir::Statement {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_operator` is never used
[INFO] [stdout]    --> src/translate.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn binary_operator(op: ast::BiOp, left: Expr, right: Expr) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relation_operator` is never used
[INFO] [stdout]    --> src/translate.rs:213:4
[INFO] [stdout]     |
[INFO] [stdout] 213 | fn relation_operator(op: ir::RelOp, left: Expr, right: Expr) -> Expr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `int_operator` is never used
[INFO] [stdout]    --> src/translate.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn int_operator(op: ir::BinOp, left: Expr, right: Expr) -> Expr {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `boolean_and_operator` is never used
[INFO] [stdout]    --> src/translate.rs:221:4
[INFO] [stdout]     |
[INFO] [stdout] 221 | fn boolean_and_operator(left: Expr, right: Expr) -> Expr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `boolean_or_operator` is never used
[INFO] [stdout]    --> src/translate.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn boolean_or_operator(left: Expr, right: Expr) -> Expr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `while_loop` is never used
[INFO] [stdout]    --> src/translate.rs:235:8
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn while_loop(cond: Expr, body: Expr, done_label: Label) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `for_loop` is never used
[INFO] [stdout]    --> src/translate.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn for_loop<F: Frame + Clone + PartialEq>(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unconditional_loop` is never used
[INFO] [stdout]    --> src/translate.rs:343:4
[INFO] [stdout]     |
[INFO] [stdout] 343 | fn unconditional_loop(body: Expr) -> ir::Statement {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `let_expression` is never used
[INFO] [stdout]    --> src/translate.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn let_expression(initializations: impl IntoIterator<Item = Expr>, body: Expr) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_literal` is never used
[INFO] [stdout]    --> src/translate.rs:360:8
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub fn string_literal<F: Frame + Clone + PartialEq>(str: String) -> (Expr, Fragment<F>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `break_expression` is never used
[INFO] [stdout]    --> src/translate.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn break_expression(destination: Label) -> Expr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]    --> src/translate.rs:372:8
[INFO] [stdout]     |
[INFO] [stdout] 372 | pub fn error() -> Expr {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ex`, `Nx`, and `Cx` are never constructed
[INFO] [stdout]   --> src/translate/expr.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 5  |     Ex(ir::Expr),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 6  |     Nx(ir::Statement),
[INFO] [stdout]    |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Cx(Condition),
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/translate/expr.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Expr {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 15 |     pub(super) const TRUE: Self = Self::Ex(ir::Expr::TRUE);
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 16 |     pub(super) const FALSE: Self = Self::Ex(ir::Expr::FALSE);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     pub(super) fn un_ex(self) -> ir::Expr {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub(super) fn un_nx(self) -> ir::Statement {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub(super) fn un_cx(self) -> Condition {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub(super) fn constant(n: i64) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub(super) fn jump_to_label(label: Label) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `TRUE`, `FALSE`, and `is_truthy` are never used
[INFO] [stdout]   --> src/translate/expr.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl ir::Expr {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 91 |     const TRUE: Self = Self::Const(1);
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 92 |     const FALSE: Self = Self::Const(0);
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 93 |
[INFO] [stdout] 94 |     fn is_truthy(self) -> Condition {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Binary`, `Always`, `Never`, `And`, and `Or` are never constructed
[INFO] [stdout]    --> src/translate/expr.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(super) enum Condition {
[INFO] [stdout]     |                 --------- variants in this enum
[INFO] [stdout] 101 |     Binary(ir::RelOp, ir::Expr, ir::Expr),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 102 |     Always(ir::Statement),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 103 |     Never(ir::Statement),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 104 |
[INFO] [stdout] 105 |     And(Box<Condition>, Box<Condition>),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 106 |     Or(Box<Condition>, Box<Condition>),
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Condition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `build_statement` is never used
[INFO] [stdout]    --> src/translate/expr.rs:110:19
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl Condition {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 110 |     pub(super) fn build_statement(self, true_label: Label, false_label: Label) -> ir::Statement {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `static_link`, and `outermost` are never used
[INFO] [stdout]   --> src/translate/level.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<F: Frame + Clone + PartialEq> Level<F> {
[INFO] [stdout]    | ------------------------------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(parent: Level<F>, name: Label, mut formals: Vec<bool>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn static_link(&self) -> F::Access {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn outermost() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function_definition` is never used
[INFO] [stdout]   --> src/translate/level.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn function_definition<F: Frame + Clone + PartialEq>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alloc_local` is never used
[INFO] [stdout]   --> src/translate/level.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn alloc_local<F: Frame + Clone + PartialEq>(level: &mut Level<F>, escape: bool) -> Access<F> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variable_initialization` is never used
[INFO] [stdout]   --> src/translate/level.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn variable_initialization<F: Frame + Clone + PartialEq>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `formals` is never used
[INFO] [stdout]   --> src/translate/level.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn formals<F: Frame + Clone + PartialEq>(level: Level<F>) -> Vec<Access<F>> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_var` is never used
[INFO] [stdout]   --> src/translate/level.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn simple_var<F: Frame + Clone + PartialEq>(access: &Access<F>, level: &Level<F>) -> Expr {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_static_link` is never used
[INFO] [stdout]   --> src/translate/level.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn resolve_static_link<F: Frame + Clone + PartialEq>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/frame.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait Frame {
[INFO] [stdout]    |           ----- associated items in this trait
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn new(name: Label, formals: Vec<bool>) -> Self;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 26 |
[INFO] [stdout] 27 |     fn frame_pointer() -> &'static Temp;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 28 |
[INFO] [stdout] 29 |     fn return_value_location() -> &'static Temp;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn name(&self) -> Label;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn formals(&self) -> Vec<Self::Access>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn alloc_local(&mut self, escape: bool) -> Self::Access;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn exp(&self, access: &Self::Access, stack_frame: ir::Expr) -> ir::Expr;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 48 |
[INFO] [stdout] 49 |     fn proc_entry_exit1(&self, body: ir::Statement) -> ir::Statement;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |
[INFO] [stdout] 51 |     fn external_call(name: &str, args: Vec<ir::Expr>) -> ir::Expr;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]   --> src/frame.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Access {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 55 |     fn expr(&self, frame_pointer: &Temp) -> ir::Expr;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize` is never used
[INFO] [stdout]  --> src/canonical.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn canonicalize(expr: ir::Expr) -> ESeq {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_statement` is never used
[INFO] [stdout]   --> src/canonical.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn canonicalize_statement(statement: ir::Statement) -> Vec<Statement> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence` is never used
[INFO] [stdout]    --> src/canonical.rs:201:4
[INFO] [stdout]     |
[INFO] [stdout] 201 | fn sequence(exprs: Vec<ESeq>) -> (Vec<Statement>, Vec<Expr>) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commutes` is never used
[INFO] [stdout]    --> src/canonical.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn commutes(statement: &Vec<Statement>, expression: &Expr) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Const`, `Temp`, `BinOp`, and `Mem` are never constructed
[INFO] [stdout]   --> src/canonical_tree.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 8  |     Const(i64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 9  |     Name(Label),
[INFO] [stdout] 10 |     Temp(Temp),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     BinOp(BinOp, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 12 |     Mem(Box<Expr>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Move`, `Call`, `Exp`, `Jump`, `CJump`, and `Label` are never constructed
[INFO] [stdout]   --> src/canonical_tree.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Statement {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 17 |     Move {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Call {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     Exp(Expr),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     Jump {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     CJump {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     Label(Label),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Temp` and `Mem` are never constructed
[INFO] [stdout]   --> src/canonical_tree.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum Dest {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 52 |     Temp(Temp),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 53 |     Mem(Expr),
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Dest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_temp` is never used
[INFO] [stdout]   --> src/canonical_tree.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Dest {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new_temp() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `mem`, `binop`, and `new_temp` are never used
[INFO] [stdout]   --> src/canonical_tree.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Expr {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 66 |     pub fn mem(e: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn binop(op: BinOp, left: Expr, right: Expr) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn new_temp() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basic_blocks` is never used
[INFO] [stdout]   --> src/basic_block.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn basic_blocks(statements: Vec<Statement>) -> (Vec<BasicBlock>, Label) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_basic_block` is never used
[INFO] [stdout]   --> src/basic_block.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn next_basic_block(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 |     Start(Label),
[INFO] [stdout]     |     ----- ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 142 |     Start(()),
[INFO] [stdout]     |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Mid(LinearStatement),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Mid(()),
[INFO] [stdout]     |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     End(Jump),
[INFO] [stdout]     |     --- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 144 |     End(()),
[INFO] [stdout]     |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `statements` is never read
[INFO] [stdout]   --> src/trace.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Trace {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 11 |     statements: Vec<Statement>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_schedule` is never used
[INFO] [stdout]   --> src/trace.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn trace_schedule(blocks: Vec<BasicBlock>, done: Label) -> Vec<Trace> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `done` is never read
[INFO] [stdout]   --> src/trace.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct TraceGenerator<'a> {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     done: Label,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/trace.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl<'a> TraceGenerator<'a> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 93 |     fn new(blocks: &'a Vec<BasicBlock>, done: Label) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/frame/risc_v.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn proc_entry_exit1(&self, body: crate::ir::Statement) -> crate::ir::Statement {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/frame/risc_v.rs:85:22
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn external_call(name: &str, args: Vec<crate::ir::Expr>) -> crate::ir::Expr {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/frame/risc_v.rs:85:34
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn external_call(name: &str, args: Vec<crate::ir::Expr>) -> crate::ir::Expr {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_pointer`
[INFO] [stdout]   --> src/frame/risc_v.rs:98:20
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn expr(&self, frame_pointer: &Temp) -> Expr {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_pointer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expr::Condition` is more private than the item `expr::Expr::Cx::0`
[INFO] [stdout]    --> src/translate/expr.rs:11:8
[INFO] [stdout]     |
[INFO] [stdout] 11  |     Cx(Condition),
[INFO] [stdout]     |        ^^^^^^^^^ field `expr::Expr::Cx::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `expr::Condition` is only usable at visibility `pub(translate)`
[INFO] [stdout]    --> src/translate/expr.rs:100:1
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(super) enum Condition {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_variable` is never used
[INFO] [stdout]    --> src/checker.rs:687:8
[INFO] [stdout]     |
[INFO] [stdout] 53  | impl<F: Frame + Clone + PartialEq> Checker<F> {
[INFO] [stdout]     | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 687 |     fn lookup_variable<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup_variable` is never used
[INFO] [stdout]    --> src/checker.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn lookup_variable<'a, F: Frame + Clone + PartialEq>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_escape` is never used
[INFO] [stdout]  --> src/escape.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn find_escape(program: &mut ast::Program) {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `And`, `Or`, `LShift`, `RShift`, `ARShift`, and `Xor` are never constructed
[INFO] [stdout]   --> src/ir.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum BinOp {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     And,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 54 |     /// Bitwise `or` operator
[INFO] [stdout] 55 |     Or,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 56 |     LShift,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     RShift,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 58 |     ARShift,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 59 |     Xor,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has` is never used
[INFO] [stdout]   --> src/symbol.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<T> SymbolTable<T> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn has(&self, symbol: &Symbol) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TempTable` is never constructed
[INFO] [stdout]   --> src/temp.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TempTable {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `named` is never used
[INFO] [stdout]   --> src/temp.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Label {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn named(name: &str) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_array_type` is never used
[INFO] [stdout]   --> src/types.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Ty {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn is_array_type(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `if_then_else_unit` is never used
[INFO] [stdout]    --> src/translate.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn if_then_else_unit(cond: Condition, then: ir::Statement, else_: ir::Statement) -> ir::Statement {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `TRUE` and `FALSE` are never used
[INFO] [stdout]   --> src/translate/expr.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Expr {
[INFO] [stdout]    | --------- associated constants in this implementation
[INFO] [stdout] 15 |     pub(super) const TRUE: Self = Self::Ex(ir::Expr::TRUE);
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 16 |     pub(super) const FALSE: Self = Self::Ex(ir::Expr::FALSE);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Never` is never constructed
[INFO] [stdout]    --> src/translate/expr.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(super) enum Condition {
[INFO] [stdout]     |                 --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 103 |     Never(ir::Statement),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Condition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `formals` is never used
[INFO] [stdout]   --> src/translate/level.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn formals<F: Frame + Clone + PartialEq>(level: Level<F>) -> Vec<Access<F>> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `return_value_location` and `name` are never used
[INFO] [stdout]   --> src/frame.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait Frame {
[INFO] [stdout]    |           ----- associated items in this trait
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn return_value_location() -> &'static Temp;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn name(&self) -> Label;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]   --> src/frame.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait Access {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 55 |     fn expr(&self, frame_pointer: &Temp) -> ir::Expr;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_temp` is never used
[INFO] [stdout]   --> src/canonical_tree.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Dest {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new_temp() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_temp` is never used
[INFO] [stdout]   --> src/canonical_tree.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Expr {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn new_temp() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basic_blocks` is never used
[INFO] [stdout]   --> src/basic_block.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn basic_blocks(statements: Vec<Statement>) -> (Vec<BasicBlock>, Label) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_basic_block` is never used
[INFO] [stdout]   --> src/basic_block.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn next_basic_block(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 |     Start(Label),
[INFO] [stdout]     |     ----- ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 142 |     Start(()),
[INFO] [stdout]     |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Mid(LinearStatement),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Mid(()),
[INFO] [stdout]     |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/basic_block.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     End(Jump),
[INFO] [stdout]     |     --- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 144 |     End(()),
[INFO] [stdout]     |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `statements` is never read
[INFO] [stdout]   --> src/trace.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Trace {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 11 |     statements: Vec<Statement>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_schedule` is never used
[INFO] [stdout]   --> src/trace.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn trace_schedule(blocks: Vec<BasicBlock>, done: Label) -> Vec<Trace> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `done` is never read
[INFO] [stdout]   --> src/trace.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct TraceGenerator<'a> {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     done: Label,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/trace.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl<'a> TraceGenerator<'a> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 93 |     fn new(blocks: &'a Vec<BasicBlock>, done: Label) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 118 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.19s
[INFO] running `Command { std: "docker" "inspect" "49e37bd6fd26abdaec8d69cd91727d646a958ddb882415d104d61101b007a873", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49e37bd6fd26abdaec8d69cd91727d646a958ddb882415d104d61101b007a873", kill_on_drop: false }`
[INFO] [stdout] 49e37bd6fd26abdaec8d69cd91727d646a958ddb882415d104d61101b007a873
